]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
15 months agosearch: Show spinner while searching
Piotr Marendowski [Tue, 5 Aug 2025 10:37:39 +0000 (12:37 +0200)]
search: Show spinner while searching

Ongoing operations are usually represented by an animation, so
the static "Searching…" label may appear as if the operation was
stuck.

Address this by adding a spinner to indicate that a search has
been started, but there aren't any results yet.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8244
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3827>

15 months agobrightnessManager: Handle backlights with limited number of steps
Sebastian Wick [Wed, 6 Aug 2025 08:54:04 +0000 (10:54 +0200)]
brightnessManager: Handle backlights with limited number of steps

Adjusts how many steps a BrightnessScale has to ensure that every
stepUp/stepDown results in a visible change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3826>

15 months agobrightnessManager: Move code around for the following commit
Sebastian Wick [Wed, 6 Aug 2025 08:52:46 +0000 (10:52 +0200)]
brightnessManager: Move code around for the following commit

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3826>

15 months agobrightnessManager: Change the number of BrightnessScale steps to 20
Sebastian Wick [Tue, 5 Aug 2025 08:27:05 +0000 (10:27 +0200)]
brightnessManager: Change the number of BrightnessScale steps to 20

This aligns with what g-s-d was using.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3826>

15 months agobrightnessManager: Make the steps of a BrightnessScale variable
Sebastian Wick [Tue, 5 Aug 2025 08:32:39 +0000 (10:32 +0200)]
brightnessManager: Make the steps of a BrightnessScale variable

This allows each brightness scale to use different number of steps when
using stepUp/stepDown. We will use this in the following commits to
better deal with backlights which have a limited amount of discrete
steps.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3826>

15 months agobrightnessManager: Clean up initialization of BrightnessScale
Sebastian Wick [Tue, 5 Aug 2025 08:31:51 +0000 (10:31 +0200)]
brightnessManager: Clean up initialization of BrightnessScale

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3826>

15 months agoPort to gjs-1.85/girepository-2.0
Florian Müllner [Wed, 16 Jul 2025 17:06:34 +0000 (19:06 +0200)]
Port to gjs-1.85/girepository-2.0

gjs ported from the stand-alone gobject-introspection-1.0 to the
new girepository-2.0 library bundled with glib.

Bump the requirements for gjs/glib and adjust to the (fairly minor)
changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3801>

15 months agoenvironment: Work around introspection issue
Florian Müllner [Mon, 4 Aug 2025 06:04:30 +0000 (08:04 +0200)]
environment: Work around introspection issue

Methods of all classes from GioUnix erroneously show up as static
methods, see https://gitlab.gnome.org/GNOME/glib/-/issues/3744.

Work around this by defining the methods ourselves if we detect
that case.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3801>

15 months agoUpdate Chinese (Taiwan) translation
Cheng-Chia Tseng [Wed, 6 Aug 2025 02:49:45 +0000 (02:49 +0000)]
Update Chinese (Taiwan) translation

(cherry picked from commit 42b58bcd0128fa86786f2c89a41153742e6f26da)

15 months agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Wed, 6 Aug 2025 02:46:28 +0000 (02:46 +0000)]
Update Brazilian Portuguese translation

15 months agoMark one string for translation
Rafael Fontenelle [Wed, 6 Aug 2025 02:33:20 +0000 (02:33 +0000)]
Mark one string for translation

15 months agobrightnessManager: Fix stepping up/down via shortcuts
Florian Müllner [Sun, 3 Aug 2025 20:32:40 +0000 (22:32 +0200)]
brightnessManager: Fix stepping up/down via shortcuts

The `BrightnessScale.value` property was originally called `brightness`,
and the methods used for keyboard shortcuts somehow missed the name change.

As a result, the methods try to set the brightness to `undefined`, which
is out of range and thus fails.

Use the correct property name to fix the shortcuts.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8570
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3825>

15 months agoUpdate Slovenian translation
Martin [Mon, 4 Aug 2025 14:08:29 +0000 (14:08 +0000)]
Update Slovenian translation

15 months agoUpdate Galician translation
Fran Diéguez [Sun, 3 Aug 2025 22:50:28 +0000 (22:50 +0000)]
Update Galician translation

15 months agonetwork: Clear connectivity queue after portal login
Michael Catanzaro [Mon, 28 Jul 2025 11:38:51 +0000 (13:38 +0200)]
network: Clear connectivity queue after portal login

When full connectivity (or rather, non-portal connectivity) is achieved,
we can clear all active portal helpers.

Normally, the portal helper will signal that it is done, but it is
implemented in a racy manner. So here let's do a comprehensive big
hammer solution to guarantee the portal helper definitely gets
eventually closed even if we miss the race window in the portal helper.
(The race is: the portal helper checks connectivity status either
immediately or within a certain amount of time after a navigation policy
decision. This could theoretically be too soon, and if missed, it won't
be rescheduled.)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3813>

15 months agoportalHelper: Add extra check for policy decision type
Michael Catanzaro [Sun, 27 Jul 2025 15:35:58 +0000 (17:35 +0200)]
portalHelper: Add extra check for policy decision type

This check will always be true currently, because there are only three
possible types of policy decisions, and both of the others are already
handled above. But if new policy decision types are ever added in the
future, then we probably don't want to execute this code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3813>

15 months agoportalHelper: Reduce the connectivity check rate limit
Michael Catanzaro [Sun, 27 Jul 2025 14:44:02 +0000 (16:44 +0200)]
portalHelper: Reduce the connectivity check rate limit

30 seconds is much too long for GNOME Shell to notice that full
connectivity has been achieved. The portal helper is expected to be
closed once connectivity is achieved.

Note this does NOT mean we unconditionally spam the connectivity check
server every 5 seconds. A connectivity check is still only scheduled
when an actual navigation occurs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3813>

15 months agoportalHelper: Schedule recheck if it's too soon to recheck
Michael Catanzaro [Sun, 27 Jul 2025 14:40:51 +0000 (16:40 +0200)]
portalHelper: Schedule recheck if it's too soon to recheck

Currently we have a 30 second limit on rechecks. A recheck that would
violate the limit is simply dropped. This causes the portal helper to
never close itself.

Instead, schedule a future recheck for as soon as the timeout expires.
This will put an upper bound on how long the portal helper will
unnecessarily remain open.

(I've also changed the logic to unconditionally emit CANCELLED in
vfunc_close_request(), since this seems more correct. This won't
actually affect anything, because gnome-shell just ignores the
CANCELLED status, but in theory it's nice to end things with an
indication that we are finished. Otherwise, CANCELLED will never be
emitted.)

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7790

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3813>

15 months agoportalHelper: Rename Done signal to StatusChanged
Michael Catanzaro [Sun, 27 Jul 2025 12:07:27 +0000 (14:07 +0200)]
portalHelper: Rename Done signal to StatusChanged

The name Done is incorrect because the result type may be RECHECK. In
this case, we are not done.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3813>

15 months agodata: Add missing new line to dash.txt and system-folder.txt
AsciiWolf [Sat, 2 Aug 2025 09:22:42 +0000 (11:22 +0200)]
data: Add missing new line to dash.txt and system-folder.txt

To make it consistent with other files

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3821>

15 months agodata: Fix sorting by name in System folder
Daniel Rusek [Sat, 2 Aug 2025 08:48:26 +0000 (08:48 +0000)]
data: Fix sorting by name in System folder

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3821>

15 months agoBump version to 49.beta
Florian Müllner [Sun, 3 Aug 2025 09:55:44 +0000 (11:55 +0200)]
Bump version to 49.beta

Update NEWS.

15 months agoshellDBus: Add the Shell.Brightness interface
Sebastian Wick [Sat, 21 Jun 2025 22:12:09 +0000 (00:12 +0200)]
shellDBus: Add the Shell.Brightness interface

This lets gnome-settings-daemon control dimming for power saving, and
set a auto brightness target for brightness sensors. This finally let's
us drop direct backlight control from g-s-d.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3751>

15 months agoshellDBus: Move loading the interface XML to the top
Sebastian Wick [Sat, 21 Jun 2025 22:11:41 +0000 (00:11 +0200)]
shellDBus: Move loading the interface XML to the top

Where the rest of the interfaces get loaded.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3751>

15 months agobrightnessManager: Add keyboard shortcuts for monitor brightness control
Sebastian Wick [Sat, 21 Jun 2025 22:10:04 +0000 (00:10 +0200)]
brightnessManager: Add keyboard shortcuts for monitor brightness control

This used to be done by g-s-d but to avoid the split brain situation,
g-s-d has to stop poking at the backlight directly. This also means that
there is no reason to round-trip through g-s-d anymore, and we can just
implement the shortcuts in gnome shell.

This also adds new shortcuts for controling the backlight of the "active
monitor" (i.e. the one with the cursor) by pressing shift as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3751>

15 months agostatus/brightness: Handle multiple monitors
Sebastian Wick [Sat, 21 Jun 2025 22:07:50 +0000 (00:07 +0200)]
status/brightness: Handle multiple monitors

The BrightnessManager exposes a global scale and per monitor scales
which we can also hook up to give users control over individual monitor
brightnesses. If there are more than one controllable backlight, the
brightness slider in quick settings becomes expandable and shows a
slider for each monitor with controllable backlight.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3751>

15 months agobrightnessManager: Handle dimming and auto brightness
Sebastian Wick [Sat, 21 Jun 2025 22:06:27 +0000 (00:06 +0200)]
brightnessManager: Handle dimming and auto brightness

We don't want gnome-settings-daemon to poke directly at mutters
backlight anymore because that would be a split brain situation where
g-s and g-s-d will fight with each other. This implements a way to tell
the BrightnessManager to dim the screen and set an auto brightness
target, and the manager will set the backlight accordingly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3751>

15 months agostatus/brightness: Switch to the new BrightnessManager
Sebastian Wick [Sat, 21 Jun 2025 22:17:11 +0000 (00:17 +0200)]
status/brightness: Switch to the new BrightnessManager

Instead of looking at the monitor backlights directly, connect to the
BrightnessManager global scales. Everything should continue working as
before, this simply gives the BrightnessManager control over the actual
backlight with the quick settings brightness sliders being one input.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3751>

15 months agobrightnessManager: Handle monitor backlight brightness
Sebastian Wick [Sat, 21 Jun 2025 22:16:56 +0000 (00:16 +0200)]
brightnessManager: Handle monitor backlight brightness

This implements a backlight manager which creates a global and multiple
per monitor BrightnessScales and updates the backlight based on the
BrightnessScales changing and the backlight changing. It shows the OSD
in response to changes.

In the future it will also handle dimming, auto brightness and keyboard
shortcuts.

The idea is that the per monitor scale changes the ratio between monitor
brighnesses and the global scale scales the monitor brightnesses
accordingly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3751>

15 months agoosdWindow: Take per-monitor information in show and add showAll, showOne
Sebastian Wick [Wed, 2 Jul 2025 10:23:51 +0000 (12:23 +0200)]
osdWindow: Take per-monitor information in show and add showAll, showOne

The current API only supports showing an OSD on all monitors or on one
monitor. This change makes it possible to show the OSD on any
combination of monitors while providing simpler functions for the common
usages.

It still retains the single-event character and cancels previous OSDs on
unaffected monitors.

We will require this for the screen brightness keyboard shortcuts in the
future.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3751>

15 months agoUpdate Galician translation
Fran Diéguez [Sat, 2 Aug 2025 20:58:07 +0000 (20:58 +0000)]
Update Galician translation

15 months agodata: Fix Yelp desktop file name
Daniel Rusek [Mon, 23 Jun 2025 11:38:24 +0000 (11:38 +0000)]
data: Fix Yelp desktop file name

Renamed in https://gitlab.gnome.org/GNOME/yelp/-/commit/8e4fb61fff97cb37b6197479c506062c9188aee0

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3762>

15 months agoUpdate Slovenian translation
Martin [Fri, 1 Aug 2025 10:44:59 +0000 (10:44 +0000)]
Update Slovenian translation

15 months agodbusServices/extensions: Remove custom stylesheet
Florian Müllner [Thu, 22 May 2025 02:41:11 +0000 (04:41 +0200)]
dbusServices/extensions: Remove custom stylesheet

There is no custom styling left :-)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3750>

15 months agodbusServices/extensions: Stop using an expander for error details
Florian Müllner [Thu, 22 May 2025 02:26:19 +0000 (04:26 +0200)]
dbusServices/extensions: Stop using an expander for error details

Always show the error details up front instead of hiding them in an
expander. Other then getting rid of custom widgetry, this solves
the awkwardness of switching between very little content (which
is best suited by a small window size) to very verbose content
(which favors a tall window).

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8413
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3750>

15 months agodbusServices/extensions: Remove ineffective CSS
Florian Müllner [Thu, 22 May 2025 02:27:15 +0000 (04:27 +0200)]
dbusServices/extensions: Remove ineffective CSS

The selector should be `preferencespage.error-page` to actually
match.

Nobody has been missing the missing style, so just remove it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3750>

15 months agodbusServices/extensions: Mention website in description
Florian Müllner [Thu, 22 May 2025 01:53:43 +0000 (03:53 +0200)]
dbusServices/extensions: Mention website in description

If the extension specifies a website, mention it in the description
instead of having a dedicated button in the expander toolbar.

This will allow us to get rid of the toolbar altogether soon.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3750>

15 months agodbusServices/extensions: Mention extension name in description
Florian Müllner [Thu, 22 May 2025 01:25:00 +0000 (03:25 +0200)]
dbusServices/extensions: Mention extension name in description

The extension name is still useful information, so mention it in
the description now that it is no longer in the title.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3750>

15 months agodbusServices/extensions: Change dialog title on error
Florian Müllner [Thu, 22 May 2025 01:33:05 +0000 (03:33 +0200)]
dbusServices/extensions: Change dialog title on error

As the dialog title is the only header element now, it should
indicate the error condition.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3750>

15 months agodbusServices/extensions: Remove status header
Florian Müllner [Thu, 22 May 2025 01:45:56 +0000 (03:45 +0200)]
dbusServices/extensions: Remove status header

It is too dominant visually, and leads to a somewhat odd
"double header" in combination with the dialog title.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3750>

15 months agodbusServices/extensions: Add tooltip to copy button
Florian Müllner [Wed, 11 Jun 2025 22:09:41 +0000 (00:09 +0200)]
dbusServices/extensions: Add tooltip to copy button

This is an oversight: Icon buttons need either a tooltip or an
accessible label. In this case, a tooltip seems appropriate[0].

[0] https://developer.gnome.org/hig/patterns/feedback/tooltips.html#tooltips

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3750>

15 months agodbusServices/extensions: Use static class blocks for gtype registration
Florian Müllner [Thu, 22 May 2025 01:22:49 +0000 (03:22 +0200)]
dbusServices/extensions: Use static class blocks for gtype registration

Static class blocks are a more readable alternative to _classInit(),
provided we make sure to call registerClass() first.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3750>

15 months agodbusServices/extensions: Use regular constructors
Florian Müllner [Thu, 22 May 2025 01:27:51 +0000 (03:27 +0200)]
dbusServices/extensions: Use regular constructors

Regular constructors have worked for GObject subclasses for a couple
of years now. While there is no functional difference to _init(),
it's simply nicer to use the same syntax for all classes, so quickly
change that before doing further changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3750>

15 months agoConnect to DnD signals using connectObject()
Jonas Dreßler [Sat, 5 Nov 2022 21:36:47 +0000 (22:36 +0100)]
Connect to DnD signals using connectObject()

Currently DnD uses `disconnectAll()` in a `::destroy` signal handler for
the drag actor. This is a little weird, as usually the connecting object
is in charge of disconnecting as well.

Since we have some nice convenience API for this nowadays, use
`connectObject()` when connecting to DnD signals in the various draggable
actors that we have, which ensures the signal is disconnected as soon as
the draggable actors get destroyed.

This allows removing the call to `disconnectAll()` in DnD.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3796>

15 months agosmartcardManager: Properly disconnect signal connections from tokens
Jonas Dreßler [Thu, 24 Jul 2025 23:30:29 +0000 (01:30 +0200)]
smartcardManager: Properly disconnect signal connections from tokens

The `token.disconnectAll()` call here is not going to work: The method is
provided by gjs as convenience for native JS objects (added to an object
using `Signals.addSignalMethods()`). The token here meanwhile is a GObject,
which doesn't have a `disconnectAll()` method.

To make it (hopefully) work as intended, use the convenience functions
that we actually do add to GObjects, that is `connectObject()` and
`disconnectObject()`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3796>

15 months agostatus/thunderbolt: Connect to signals using connectObject
Jonas Dreßler [Thu, 24 Jul 2025 23:08:01 +0000 (01:08 +0200)]
status/thunderbolt: Connect to signals using connectObject

To ensure that we disconnect from those signals when the Indicator goes
away, use the `connectObject()` convenience function.

This also allows removing the call to `disconnectAll()` in the AuthRobot
`close()` method.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3796>

15 months agostatus/thunderbolt: Actually connect onDestroy callback
Jonas Dreßler [Thu, 24 Jul 2025 23:13:03 +0000 (01:13 +0200)]
status/thunderbolt: Actually connect onDestroy callback

Seems this was forgotten in the initial commit adding the new indicator.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3796>

15 months agoappDisplay: Set popup menu side via parameter to AppIcon class
Jonas Dreßler [Mon, 24 Jul 2023 20:22:49 +0000 (22:22 +0200)]
appDisplay: Set popup menu side via parameter to AppIcon class

Let's make the "side" argument to the popupMenu() function for app icons
a param to the AppIcon class itself. The side is not that dynamic that it
needs to be defined on calling of the function, instead it can be defined
on creation of the AppIcon as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3796>

15 months agobarLevel: Remove redundant cairo fill calls
Khalid Abu Shawarib [Wed, 30 Jul 2025 16:30:52 +0000 (19:30 +0300)]
barLevel: Remove redundant cairo fill calls

Drop the redundant fillPreserve() calls where there already is a fill().
This is also caused by 6fd0aac86.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3817>

15 months agoslider: Don't preserve paths after filling
Sebastian Keller [Wed, 30 Jul 2025 13:24:29 +0000 (15:24 +0200)]
slider: Don't preserve paths after filling

Prior to 6fd0aac86 the paths were preserved when filling to allow
stroking the path afterwards. The stroke() then would have cleared the
path. Then when the stroking was dropped in that commit, a second fill()
call, this time without preserving the path was added, but missed from
the end arc of the bar level. This then would leak the path to the
slider handle.

Fix this by always using fill() instead of fillPreserve().

Fixes: 6fd0aac86 ("slider: Remove border drawing code add hover style")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3817>

15 months agoci: Stop including eslint/jsdoc in image
Florian Müllner [Tue, 10 Jun 2025 12:50:27 +0000 (14:50 +0200)]
ci: Stop including eslint/jsdoc in image

We no longer use the globally installed packages, so stop adding
them.

Given that recent versions of eslint make it increasingly hard to
install the package globally, this was bound to happen eventually
anyway.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agoci: Use run-eslint.sh wrapper to lint code snippets in docs
Florian Müllner [Tue, 10 Jun 2025 11:32:08 +0000 (13:32 +0200)]
ci: Use run-eslint.sh wrapper to lint code snippets in docs

This means we only have to deal with a single entry point for
eslint, plus we get the option to produce fancy MR reports.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agotools: Add rules override for code snippets in docs
Florian Müllner [Tue, 10 Jun 2025 09:00:52 +0000 (11:00 +0200)]
tools: Add rules override for code snippets in docs

The snippets don't have context, so any rules that catch undefined
or unused stuff don't apply.

We currently disable those rules via command-line parameters. Including
it in the config instead will allow to re-use the run-eslint.sh wrapper.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agolint: Remove old configuration
Florian Müllner [Tue, 10 Jun 2025 01:12:58 +0000 (03:12 +0200)]
lint: Remove old configuration

It is unused after the switch to the new flat config format.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agoci: Use script from tools to run eslint
Florian Müllner [Tue, 10 Jun 2025 01:15:21 +0000 (03:15 +0200)]
ci: Use script from tools to run eslint

Now that we include a more public version of the script, there
is no reason to keep the original script just for CI.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agotools: Switch to flat config for eslint
Florian Müllner [Tue, 10 Jun 2025 01:11:05 +0000 (03:11 +0200)]
tools: Switch to flat config for eslint

Both the .json and .yml config formats are deprecated in favor
of flat configs exported from eslint.config.js files.

The good news is that gjs' config is now available as a shared
config from the `eslint-config-gnome` package in World/javascript,
so we no longer have to copy the entire thing.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agotools: Add run-eslint.sh script
Florian Müllner [Tue, 10 Jun 2025 00:36:50 +0000 (02:36 +0200)]
tools: Add run-eslint.sh script

The script is a small wrapper around the `ci-run-eslint` package
from World/javascript, which is a generalized and improved version
of the .gitlab-ci/run-eslint script we are currently using.

It only requires `npm` to be available, so it simplifies running
eslint locally quite a lot.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agoRequire gjs >= 1.81.2 for build because Intl.Segmenter is needed
Mike FABIAN [Wed, 30 Jul 2025 09:53:47 +0000 (11:53 +0200)]
Require gjs >= 1.81.2 for build because Intl.Segmenter is needed

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3816>

15 months agopanel: Remove AppMenu button
Florian Müllner [Wed, 14 May 2025 23:15:59 +0000 (01:15 +0200)]
panel: Remove AppMenu button

The indicator was removed more than two years ago in commit 3ea672ef.

There have been no discussions on bringing it back since then, so
it's safe to assume that the code is dead and can be removed.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3815>

15 months agomagnifier: Scale the sprite to match the current monitor scaling
Marco Trevisan (Treviño) [Wed, 27 Mar 2019 15:14:39 +0000 (16:14 +0100)]
magnifier: Scale the sprite to match the current monitor scaling

Compute the sprite texture scale (unfortunately using a workaround, based on
mutter cursor size preferences, tying to figure out the closest texture integer
scaling), and use this value to compute the scaling that should be applied to
the sprite in order to match the current monitor scaling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/475>

15 months agoUpdate Slovenian translation
Martin [Sat, 26 Jul 2025 15:16:53 +0000 (15:16 +0000)]
Update Slovenian translation

15 months agopo: Update POTFILES.in
Florian Müllner [Tue, 22 Jul 2025 22:00:44 +0000 (00:00 +0200)]
po: Update POTFILES.in

Commit f391115 dropped the org.gnome.Shell.desktop file and
removed one level of preprocessing from auxiliary .desktop files.

Update POTFILES.in to reflect those changes.

Fixes: f3911151da ("data: Drop org.gnome.Shell.desktop")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8535
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3807>

15 months agoci: Install dependencies when using custom destdir
Florian Müllner [Mon, 21 Jul 2025 19:36:27 +0000 (21:36 +0200)]
ci: Install dependencies when using custom destdir

Commit fd4320156c9 changed the `update-mutter` command inside the
toolbox to also install into the sysext extension dir, so people
who don't build mutter themselves can still use the sysext tooling.

Except they can't, because additional dependencies from mutter's
install-common-dependencies.sh script are missing as the script
is currently only invoked by the meson-build script.

Fix that by also running the script when running install-meson-project
with a destdir, as is done from the update-mutter command.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3805>

15 months agoscreencapture: Remove the period from some notification descriptions
Julian Sparber [Sun, 20 Jul 2025 16:11:40 +0000 (18:11 +0200)]
screencapture: Remove the period from some notification descriptions

We usually don't have periods at the end of descriptions for
notification.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3210>

15 months agoscreencapture: Use same source for all screen capture notifications
Julian Sparber [Mon, 26 Feb 2024 10:06:34 +0000 (11:06 +0100)]
screencapture: Use same source for all screen capture notifications

We group notifications by source but in order to have it working
we actually need to use the same source object.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6187
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3210>

15 months agodata: Drop org.gnome.Shell.desktop
Adrian Vovk [Wed, 9 Jul 2025 01:02:29 +0000 (21:02 -0400)]
data: Drop org.gnome.Shell.desktop

gnome-session no longer launches gnome-shell via a .desktop file,
because gnome-session no longer has a builtin service manager.

gnome-shell is now always launched via systemd

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3806>

15 months agoRevert "main: Notify gnome-session when we're ready"
Adrian Vovk [Wed, 9 Jul 2025 00:56:18 +0000 (20:56 -0400)]
Revert "main: Notify gnome-session when we're ready"

This reverts commit 1747a59aa5d44f4d7b74e1f1fee1d48174a1ce5a.

gnome-session is no longer a service manager, and thus doesn't need to
be notified of our readiness like this. We now do this exclusively
through systemd

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3806>

15 months agostatus/accessibility: Use named icons for quick settings actions
Sam Hewitt [Thu, 3 Jul 2025 19:08:31 +0000 (16:38 -0230)]
status/accessibility: Use named icons for quick settings actions

- add symbolic assets for private-use actions

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3791>

15 months agoci: Bump mutter image
Florian Müllner [Mon, 21 Jul 2025 15:18:56 +0000 (17:18 +0200)]
ci: Bump mutter image

Mutter depends on a newer wayland version, so update the image to
satisfy the dependency.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3804>

15 months agoscreenshot: Fix taking interactive screenshots via D-Bus
Florian Müllner [Sat, 19 Jul 2025 12:12:46 +0000 (14:12 +0200)]
screenshot: Fix taking interactive screenshots via D-Bus

The D-Bus method relies on the `screenshot-taken` and `closed` signals
to differentiate successful operations from canceled/failed ones.

However as the `screenshot-taken` signal is emitted asynchronously,
it may end up being emitted after the `closed` signal even in case
of success. Await the result to ensure correct ordering.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8499
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3803>

15 months agologinDialog: Store items in map
Florian Müllner [Tue, 8 Jul 2025 19:26:27 +0000 (21:26 +0200)]
loginDialog: Store items in map

Using the dedicated standard type is a bit cleaner and more optimized
than using "raw" objects as hashes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3799>

15 months agoUpdate Interlingua translation
Emilio Sepúlveda [Wed, 16 Jul 2025 17:05:10 +0000 (17:05 +0000)]
Update Interlingua translation

15 months agoBump gsd version to 49.alpha
Joan Torres Lopez [Tue, 15 Jul 2025 10:57:19 +0000 (12:57 +0200)]
Bump gsd version to 49.alpha

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3797>

15 months agoci: Update MUTTER_CI_IMAGE to ensure the new gsetting on the image
Joan Torres Lopez [Tue, 15 Jul 2025 09:06:03 +0000 (11:06 +0200)]
ci: Update MUTTER_CI_IMAGE to ensure the new gsetting on the image

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3797>

15 months agosystemActions: Optionally allow restart/shutdown on lock screen
Joan Torres Lopez [Tue, 15 Jul 2025 09:27:01 +0000 (11:27 +0200)]
systemActions: Optionally allow restart/shutdown on lock screen

Support the new 'restart-enabled' setting from 'org.gnome.desktop.screensaver'
to optionally allow restart/shutdown from the lock screen.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1584
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3797>

15 months agoutil: Don't consider consecutive dots as URLs
Sebastian Keller [Tue, 15 Jul 2025 08:08:45 +0000 (10:08 +0200)]
util: Don't consider consecutive dots as URLs

This now requires at least one character separating each dot for it to
be considered a URL. It also does not allow URLs starting with a dot
anymore.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8517
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3798>

15 months agoextensions-app: Port to AdwShortcutsDialog
Florian Müllner [Wed, 2 Jul 2025 19:30:11 +0000 (21:30 +0200)]
extensions-app: Port to AdwShortcutsDialog

GTK's ShortcutsWindow has been deprecated for a while, now libadwaita
added a replacement we can move to.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3788>

15 months agologinDialog: Move session/a11y buttons into a box
Florian Müllner [Tue, 8 Jul 2025 15:42:56 +0000 (17:42 +0200)]
loginDialog: Move session/a11y buttons into a box

The intermediate container allows the theme to control the distance
from the edge and spacing between buttons, which is more accessible
to the designers than computing the values from code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3794>

15 months agologinDialog: Increase size of session/a11y buttons
Florian Müllner [Thu, 3 Jul 2025 14:15:18 +0000 (16:15 +0200)]
loginDialog: Increase size of session/a11y buttons

The buttons on the login screen for the session and accessibility
menus can easily be lost, due to a combination of their size and
position, and the large amount of empty space.

Increase their size a bit to lessen that effect.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8497
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3794>

15 months agoUpdate Romanian translation
Antonio Marin [Mon, 14 Jul 2025 13:02:38 +0000 (13:02 +0000)]
Update Romanian translation

15 months agoUpdate Turkish translation
Emin Tufan Çetin [Sun, 13 Jul 2025 11:50:51 +0000 (11:50 +0000)]
Update Turkish translation

15 months agonetwork: Make sortByName to properly handle null values
Marco Trevisan (Treviño) [Wed, 9 Jul 2025 03:56:27 +0000 (05:56 +0200)]
network: Make sortByName to properly handle null values

g_utf8_collate is not nullable, but is used in a relevant piece of code,
so better not to throw any error if a null value is compared

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3785>

15 months agonetwork: Do not consider networks without ID as available
Marco Trevisan (Treviño) [Mon, 30 Jun 2025 18:31:13 +0000 (20:31 +0200)]
network: Do not consider networks without ID as available

In some rare (and weird) cases network manager may provide us
connections without settings (since connection.get_settings() is
actually nullable, and this may lead to have a NULL connection ID, that
eventually breaks the network menu completely:

  (gnome-shell:1579214): GNOME Shell-CRITICAL **: 20:27:14.874: Error:
    Argument str2 may not be null

  Stack trace:
    _sortByName@resource:///org/gnome/shell/ui/status/network.js:119:21
    lowerBound@resource:///org/gnome/shell/misc/util.js:253:13
    insertSorted@resource:///org/gnome/shell/misc/util.js:279:25
    _upsert@resource:///org/gnome/shell/ui/status/network.js:128:21
    upsert@resource:///org/gnome/shell/ui/status/network.js:147:21
    _addConnection@resource:///org/gnome/shell/ui/status/network.js:578:38
    _syncConnections@resource:///org/gnome/shell/ui/status/network.js:511:18
    NMDeviceItem@resource:///org/gnome/shell/ui/status/network.js:469:14
    NMWiredDeviceItem@resource:///org/gnome/shell/ui/status/network.js:611:1
    _createDeviceMenuItem@resource:///org/gnome/shell/ui/status/network.js:1909:16
    _ensureDeviceItem@resource:///org/gnome/shell/ui/status/network.js:1744:27
    _syncDeviceItem@resource:///org/gnome/shell/ui/status/network.js:1717:18
    _addDevice@resource:///org/gnome/shell/ui/status/network.js:1767:14
    _loadInitialItems@resource:///org/gnome/shell/ui/status/network.js:1680:18
    setClient@resource:///org/gnome/shell/ui/status/network.js:1420:18
    setClient@resource:///org/gnome/shell/ui/status/network.js:1651:15
    _getClient/<@resource:///org/gnome/shell/ui/status/network.js:2126:30
    _getClient@resource:///org/gnome/shell/ui/status/network.js:2125:33
    async*_init@resource:///org/gnome/shell/ui/status/network.js:2119:14
    SystemIndicator@resource:///org/gnome/shell/ui/quickSettings.js:847:1
    Indicator@resource:///org/gnome/shell/ui/status/network.js:2073:1
    _setupIndicators@resource:///org/gnome/shell/ui/panel.js:523:29
    async*QuickSettings@resource:///org/gnome/shell/ui/panel.js:514:14
    _ensureIndicator@resource:///org/gnome/shell/ui/panel.js:903:25
    _updateBox@resource:///org/gnome/shell/ui/panel.js:914:34
    _updatePanel@resource:///org/gnome/shell/ui/panel.js:868:14
    _init@resource:///org/gnome/shell/ui/panel.js:692:14
    Panel@resource:///org/gnome/shell/ui/panel.js:648:1
    _initializeUI@resource:///org/gnome/shell/ui/main.js:246:13
    start@resource:///org/gnome/shell/ui/main.js:180:11
    @resource:///org/gnome/shell/ui/init.js:12:47
    @resource:///org/gnome/shell/ui/init.js:21:20

Now, despite that specific connection here has valid settings when
loaded from dbus, it may still happen that NM lib fails at other level in
fetching its settings.

That said, we should not fail if a connection has no settings, and
just skip it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3785>

16 months agoUpdate Interlingua translation
Emilio Sepúlveda [Tue, 8 Jul 2025 12:43:23 +0000 (12:43 +0000)]
Update Interlingua translation

16 months agoUpdate Interlingua translation
Emilio Sepúlveda [Mon, 7 Jul 2025 14:51:16 +0000 (14:51 +0000)]
Update Interlingua translation

16 months agoUpdate Interlingua translation
Emilio Sepúlveda [Sun, 6 Jul 2025 01:48:50 +0000 (01:48 +0000)]
Update Interlingua translation

16 months agost/button: Remove transition vfunc
Florian Müllner [Fri, 4 Jul 2025 17:49:02 +0000 (19:49 +0200)]
st/button: Remove transition vfunc

This was part of the original MxWidget import, but we never used
it for anything. After more than 15 years it is unlikely that we
are going to start, so remove it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3792>

16 months agoUpdate Slovenian translation
Martin [Thu, 3 Jul 2025 20:10:03 +0000 (20:10 +0000)]
Update Slovenian translation

16 months agoextensions-app: Add mnemonic to the "Log Out..." button from banner
Automeris naranja [Tue, 1 Jul 2025 19:37:36 +0000 (16:37 -0300)]
extensions-app: Add mnemonic to the "Log Out..." button from banner

It makes easier to trigger this button with the keyboard,
helping a11y.

See https://developer.gnome.org/hig/guidelines/keyboard.html#access-keys

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3786>

16 months agoUpdate Thai translation
Aefgh Threenine [Thu, 3 Jul 2025 11:57:47 +0000 (11:57 +0000)]
Update Thai translation

(cherry picked from commit 31d714b22dd7b97fa0ddb6160240ade80987ee14)

16 months agoUpdate Thai translation
Aefgh Threenine [Thu, 3 Jul 2025 10:58:46 +0000 (10:58 +0000)]
Update Thai translation

(cherry picked from commit e24e8aeb3de6c0467e9ead6ef7c36971f0863cbf)

16 months agodata: Replace org.gnome.Evince with org.gnome.Papers in Utilities
AsciiWolf [Wed, 26 Feb 2025 16:36:08 +0000 (17:36 +0100)]
data: Replace org.gnome.Evince with org.gnome.Papers in Utilities

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3611>

16 months agobuild: Bump Mutter ABI version
Carlos Garnacho [Mon, 26 May 2025 15:27:17 +0000 (17:27 +0200)]
build: Bump Mutter ABI version

We didn't do so for GNOME 49, so do it now.

16 months agoscreenShield: Fix pointer showing on motion
Carlos Garnacho [Sun, 29 Jun 2025 09:35:24 +0000 (11:35 +0200)]
screenShield: Fix pointer showing on motion

As an additional side effect of switching to the cursor visibility
inhibition API in the cursor tracker, there is no longer this
infighting in Mutter where pointer motion tries to set pointer
visibility on (since it's the last device used), and other places
wanting to inhibit it, such as the screenshield.

This resulted on the cursor wanting to show by itself, and somehow
trigger captured motion events on the ClutterStage. This no longer
happens, which results in the pointer staying hidden, seat unfocus
remaining uninhibited, and no motion events being sent in (since
the pointer device now does remain unfocused).

Fix this by:
- Setting a seat unfocus inhibition, so the pointer triggers motion
  and focus despite being hidden
- Connecting to captured events on the screen lock group widget,
  since captured events will respect the existing grab

This results in pointer motion again resulting on the cursor being
shown, when waking up the lockscreen.

Fixes: 91c6366e0 ("Adjust to cursor tracker visibility API changes")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3781>

16 months agoBump version to 49.alpha.1
Florian Müllner [Sat, 28 Jun 2025 15:03:19 +0000 (17:03 +0200)]
Bump version to 49.alpha.1

Update NEWS.

16 months agoUpdate Russian translation
Artur S0 [Sat, 28 Jun 2025 17:29:43 +0000 (17:29 +0000)]
Update Russian translation

16 months agoscreenshot: Remove gtk desktop portal from allowed senders
Florian Müllner [Mon, 23 Jun 2025 10:59:00 +0000 (12:59 +0200)]
screenshot: Remove gtk desktop portal from allowed senders

The gtk portal removed all portals that were relying on private
GNOME APIs, given that those are now implemented by the gnome portal.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3760>

16 months agoscreenshot: Remove gnome-screenshot from allowed senders
Florian Müllner [Sun, 22 Jun 2025 12:59:07 +0000 (14:59 +0200)]
screenshot: Remove gnome-screenshot from allowed senders

It was removed from core after we got a built-in screenshot UI in
the shell, and is mostly unmaintained nowadays.

There is no good reason anymore for treating it differently than other
3rd-party screenshot tools, so stop giving it default access to the
private screenshotting API.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3760>

16 months agologinDialog: Add a11y menu
Florian Müllner [Sat, 7 Jun 2025 17:13:59 +0000 (19:13 +0200)]
loginDialog: Add a11y menu

When quick settings become configurable, users can add the a11y
toggles they need to the regular quick settings menu. This does
not really work for the login screen, where all a11y features
should be available by default.

Address this by adding a dedicated a11y menu button next to the
session menu button.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3744>

16 months agostatus/accessibility: Export quick toggles
Florian Müllner [Sat, 7 Jun 2025 16:45:16 +0000 (18:45 +0200)]
status/accessibility: Export quick toggles

Implement quick toggles for every accessibility feature that is
currently exposed by the menu. Those toggles will eventually replace
the menu when quick setting become configurable.

However the login screen will use a dedicated accessibility menu
(once again), which does not depend on the quick settings feature,
so add the toggles now to allow implementing it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3744>